package com.zmj.modules.flow.entity.vo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.io.Serializable;
import java.util.Map;

/**
 * @author lzy
 * @since 2023-12-01
 */
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class TodoTaskVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "流水号")
    private String procInstId;

    @ApiModelProperty(value = "流程标题")
    private String procInstName;

    @ApiModelProperty(value = "流程定义id")
    private String procDefId;

    @ApiModelProperty(value = "流程定义key")
    private String key;

    @ApiModelProperty(value = "流程分类")
    private String category;

    @ApiModelProperty(value = "节点id")
    private String activityId;

    @ApiModelProperty(value = "节点名称")
    private String activityName;

    @ApiModelProperty(value = "业务id")
    private String businessKey;

    @ApiModelProperty(value = "任务id")
    private String taskId;

    @ApiModelProperty(value = "办理人id")
    private String assignee;

    @ApiModelProperty(value = "办理人姓名")
    private String assigneeName;

    @ApiModelProperty(value = "候选人id")
    private String candidateUser;

    @ApiModelProperty(value = "候选人姓名")
    private String candidateUserName;

    @ApiModelProperty(value = "抄送人id")
    private String ccUser;

    @ApiModelProperty(value = "抄送人姓名")
    private String ccUserName;

    @ApiModelProperty(value = "抄送时间")
    private String ccTime;

    @ApiModelProperty(value = "抄送状态 cc-已抄送,unCc-未抄送")
    private String ccStatus;

    @ApiModelProperty(value = "任务状态 待接收、待处理、已处理、已退回、已结束")
    private String status;

    @ApiModelProperty(value = "开始时间")
    private String startTime;

    @ApiModelProperty(value = "结束时间")
    private String endTime;

    @ApiModelProperty(value = "流程发起人id")
    private String startUser;

    @ApiModelProperty(value = "流程发起人名称")
    private String startUserName;

    @ApiModelProperty(value = "流程发起部门id")
    private String startDepartment;

    @ApiModelProperty(value = "流程发起部门名称")
    private String startDepartmentName;

    @ApiModelProperty(value = "备注")
    private String comment;

    /**
     * 撤回原因：程序中使用
     */
    @JsonIgnore
    private String withdrawComment;

    /**
     * 删除原因：程序中使用
     */
    @JsonIgnore
    private String deleteReason;

    @ApiModelProperty(value = "处理url")
    private String url;

    @ApiModelProperty(value = "详情url")
    private String detailUrl;

    @ApiModelProperty(value = "移动端url")
    private String mobileUrl;

    @ApiModelProperty(value = "相关变量")
    private Map<String, Object> variables;

    @ApiModelProperty(value = "顺序")
    private String sequence;

}
